White Box Testing (WBT):
   It is type of testing done by the dev to verify the source code. 
   To perform this type of testing we need to have understanding of complete requirements and as well as complete code knowledge.
   It is also k.a, Glass Box Testing OR Unit Testing.

Usually WBT will be performed by Dev. QA can also perform WBT provided they should have proper coding knowledge.

Types of WBT:
1. Path Testing OR scenario testing
2. Conditional Testing
3. Loop Testing
4. Testing from performance point of view
5. Testing from memory point of view
6. Integration testing


1. Path Testing:
    Find/derive all the workflows OR paths for the given requirements. Take the individual workflow, combine all the code belongs to that flow and run them in a required order.
Usually to do that we use Unit testing tools (Ex: Junit & TestNG)


2. Conditional Testing:
   Check each and every conditional statement in your source code whether they have properly validated OR not. Every conditional statemments should be validated for both its true & false sides.


3. Loop Testing:
   Make sure the source code doesnot contains any infinite loops, unwanted iterations, unwanted loops etc.


4. Testing from performance point of view:
   Make sure the execution of code is very fast. To achieve this we have to do code optimization &/OR DB tuning.


5. Testing from memory point of view:
   If we want to reduce the size of the source code inorder to burn them in the chip we need to reduce OR remove unused variables, unused blocks/methods, unused objects etc. We need to close and release all the objects effectively to reduce the size of the source code.


6. Integration testing:
   (i) Incremental Integration Testing
       (a) Top down
       (b) Bottom Up

   (ii) Non-Incremental Integration Testing
       (a) Bigbang
       (b) Sandwitch
